#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <math.h>
using namespace std;

int zhi[440];
int dd[440];
int anslist[440];
int n, k;
void iszhi(int a)
{
    if (a == 2) return ;
    if (a%2 == 0)
    {
            zhi[a] = 2;
            dd[a] = a/2;
            return ;
    } 
    int i, n;
    //n = (int)sqrt(n*1.0);
    n = a;
    for (i=3; i<n; i+=2)
        if (a%i == 0)
        {
                zhi[a] = i;
                dd[a] = a/i;
                return ;
        }
    return ;
}


void init()
{
     memset(zhi, 0, sizeof(zhi));
     memset(dd, 0, sizeof(dd));
     int i;
     for (i=2; i<=439; ++i)
         iszhi(i);
}
void deal()
{
     int i, j;
     long long ans;
     memset(anslist, 0, sizeof(anslist));
     ans = 0;
     for (i=n-k+1; i<=n; ++i)
     {
         j = i;
         while (zhi[j] !=0)
         {
               anslist[zhi[j]]++;
               j = dd[j];
         }
         anslist[j] ++;
     }
     for (i=1; i<=k; ++i)
     {
         j = i;
         while (zhi[j] !=0)
         {
               anslist[zhi[j]]--;
               j = dd[j];
         }
         anslist[j] --;
     }     
     ans = 1;
     for (i=2; i<=n; ++i)
         if (anslist[i])
         {
            ans *= anslist[i]+1;
    //        cout << "yin:" << i << "num:" << anslist[i] << endl;
         }
     cout << ans << endl;
}

int main()
{
    init();
    while (scanf("%d%d", &n, &k)!=EOF)
          deal();
    return 0;
}
